1417D - Make Them Equal - CodeForces Solution


constructive algorithms greedy math *2000

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define sc(a) scanf("%d",&a)
#define scc(a,b) scanf("%d%d",&a,&b)
const int maxn=3e5+10;

int t,n,sum,a[maxn];
int main()
{
	sc(t);
	while(t--)
	{
		sc(n);
		sum=0;
		for(int i=1;i<=n;i++)
		{
			sc(a[i]);
			sum+=a[i];
		}
		if(sum%n!=0)
		{
			printf("-1\n");
		}
		else
		{
			printf("%d\n",3*(n-1));
			for(int i=2;i<=n;i++)
			{
				printf("%d %d %d\n",1,i,(i-a[i]%i)%i);
				a[1]-=(i-a[i]%i)%i;
				a[i]+=(i-a[i]%i)%i;
				printf("%d %d %d\n",i,1,a[i]/i);
				a[1]+=a[i]/i*i;
				a[i]-=a[i]/i*i;
			}
			for(int i=2;i<=n;i++)
			{
				printf("%d %d %d\n",1,i,sum/n);
			}
		}
	}
	return 0;
} 


Comments

Submit
0 Comments
More Questions

1302. Deepest Leaves Sum
1209. Remove All Adjacent Duplicates in String II
994. Rotting Oranges
983. Minimum Cost For Tickets
973. K Closest Points to Origin
969. Pancake Sorting
967. Numbers With Same Consecutive Differences
957. Prison Cells After N Days
946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST